package guardian

import com.mls.guardian.common.Md5Util
import dao.MongoClient
import grails.transaction.Transactional
import vo.User

@Transactional
class UserService {

    def serviceMethod() {

    }


    /**
     * 用户登录
     * @param loginName
     * @param password
     * @return
     * @throws Exception
     */
    def login(String loginName, String password) throws Exception{
        User user = new User();
        user.setLoginName(loginName);
        user.setPassword(getMd5Pwd(loginName,password));
        List<User> userS = MongoClient.find(user);
        if(userS!=null && userS.size()>0){
            return userS.get(0);
        }
        return null;
    }

    def updatePwd(String pwd,String id,String updateUser){
        User userS = MongoClient.findBy_id(User.class,id);
        if(userS!=null){
            userS.setPassword(getMd5Pwd(userS.getLoginName(),pwd))
            userS.setUpdateUser(updateUser)
            userS.setUpdateTime(new Date())
            MongoClient.update(userS,id)
        }
    }

    def updateUser(User user){
        User updateU = MongoClient.findBy_id(User.class,user.get_id());
        if(updateU!=null){
            user.setCreateTime(updateU.getCreateTime())
            user.setCreateUser(updateU.getCreateUser())
            user.setPassword(getMd5Pwd(user.getLoginName(),updateU.getPassword()))
            MongoClient.update(user,user.get_id())
        }
    }

    def getMd5Pwd(user,pwd){
        Md5Util.GetMD5Code(user+"MLS"+pwd);
    }

    def save(User user) {
        user.setPassword(getMd5Pwd(user.getLoginName(),user.getPassword()))
        MongoClient.save(user)
    }

    def searchAll(User user){
        MongoClient.find(user);
    }

    def searchBy_id(String _id){
       return MongoClient.findBy_id(User.class,_id);
    }

    def del(String _id){
        MongoClient.delBy_id(User.class,_id);
    }
}
